home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
Activation
/
Activator.cp
< prev
next >
Wrap
Text File
|
2000-06-23
|
1KB
|
72 lines
// Activator.cp
#ifndef Activator_h
#include "Activator.h"
#endif
#ifndef Focus_h
#include "Focus.h"
#endif
Activator::Activator( Focus& focus )
: Enableable( !focus.Active() ),
// We can't call Activate() yet, so we start disabled
// if we're connected to an active focus.
active( false ),
focusActive( focus.Active() ),
link( this )
{
focus.activators.Add( link, afterEnd );
}
Activator::~Activator()
{
}
void Activator::FocusActivated()
{
Assert( !focusActive );
Assert( !active );
focusActive = true;
if ( Enabled() )
{
active = true;
Activate();
}
}
void Activator::FocusDeactivated()
{
Assert( focusActive );
Assert( active == Enabled() );
focusActive = false;
if ( Enabled() )
{
active = false;
Deactivate();
}
}
void Activator::BeEnabled()
{
Assert( !active );
if ( focusActive )
{
active = true;
Activate();
}
}
void Activator::BeDisabled()
{
Assert( focusActive == active );
if ( focusActive )
{
active = false;
Deactivate();
}
}